home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xml / BaseDeclaration.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  9.3 KB  |  374 lines

  1. package com.extensibility.xml;
  2.  
  3. import com.extensibility.util.Debug;
  4. import com.extensibility.util.XASet;
  5. import java.io.IOException;
  6. import java.io.Writer;
  7. import java.util.Enumeration;
  8. import java.util.EventObject;
  9. import java.util.Hashtable;
  10. import java.util.ResourceBundle;
  11. import java.util.Vector;
  12. import javax.swing.event.ChangeEvent;
  13. import javax.swing.event.ChangeListener;
  14. import javax.swing.event.EventListenerList;
  15.  
  16. public abstract class BaseDeclaration implements ChangeListener, Cloneable {
  17.    static String mostRecentName = "";
  18.    protected boolean fireOnMetaPropChange;
  19.    SchemaIntf schema;
  20.    static ResourceBundle resourceBundle;
  21.    String sampleData;
  22.    public static String LINE_SEPARATOR = System.getProperty("line.separator");
  23.    String name;
  24.    CommentList comments;
  25.    URI uri;
  26.    Vector errors;
  27.    MetaPropHash metaProps;
  28.    boolean isInProlog;
  29.    EventListenerList listenerList;
  30.    DeclarationChangeEvent declChangeEvent;
  31.  
  32.    public static String getMostRecentName() {
  33.       return mostRecentName;
  34.    }
  35.  
  36.    public static void setResources(ResourceBundle var0) {
  37.       resourceBundle = var0;
  38.    }
  39.  
  40.    public String getSampleData() {
  41.       Debug.assertAbstract();
  42.       return null;
  43.    }
  44.  
  45.    public void setSampleData(String var1) {
  46.       this.sampleData = var1;
  47.    }
  48.  
  49.    public void addChangeListener(ChangeListener var1) {
  50.       this.listenerList.add(Class.forName("javax.swing.event.ChangeListener"), var1);
  51.    }
  52.  
  53.    public void removeChangeListener(ChangeListener var1) {
  54.       this.listenerList.remove(Class.forName("javax.swing.event.ChangeListener"), var1);
  55.    }
  56.  
  57.    public void fireChangeEvent() {
  58.       Object[] var1 = this.listenerList.getListenerList();
  59.       this.declChangeEvent.set();
  60.  
  61.       for(int var2 = var1.length - 2; var2 >= 0; var2 -= 2) {
  62.          if (var1[var2] == Class.forName("javax.swing.event.ChangeListener")) {
  63.             ((ChangeListener)var1[var2 + 1]).stateChanged(this.declChangeEvent);
  64.          }
  65.       }
  66.  
  67.    }
  68.  
  69.    public void fireChangeEvent(int var1, Object var2) {
  70.       Object[] var3 = this.listenerList.getListenerList();
  71.       this.declChangeEvent.set(var1, var2);
  72.  
  73.       for(int var4 = var3.length - 2; var4 >= 0; var4 -= 2) {
  74.          if (var3[var4] == Class.forName("javax.swing.event.ChangeListener")) {
  75.             ((ChangeListener)var3[var4 + 1]).stateChanged(this.declChangeEvent);
  76.          }
  77.       }
  78.  
  79.    }
  80.  
  81.    public void stateChanged(ChangeEvent var1) {
  82.       Object var2 = ((EventObject)var1).getSource();
  83.    }
  84.  
  85.    public BaseDeclaration(String var1) {
  86.       this.fireOnMetaPropChange = true;
  87.       this.sampleData = null;
  88.       this.errors = new Vector();
  89.       this.isInProlog = false;
  90.       this.listenerList = new EventListenerList();
  91.       this.declChangeEvent = new DeclarationChangeEvent(this);
  92.       this.name = var1;
  93.       mostRecentName = var1;
  94.    }
  95.  
  96.    public BaseDeclaration(String var1, Vector var2) {
  97.       this(var1);
  98.       this.comments = new CommentList(var2);
  99.    }
  100.  
  101.    public BaseDeclaration clone(SchemaIntf var1, SchemaIntf var2, URI var3) {
  102.       try {
  103.          BaseDeclaration var4 = (BaseDeclaration)this.clone();
  104.          var4.setURI(var3);
  105.          var4.schema = null;
  106.          return var4;
  107.       } catch (CloneNotSupportedException var6) {
  108.          Object var5 = null;
  109.          return (BaseDeclaration)var5;
  110.       }
  111.    }
  112.  
  113.    public Object clone() throws CloneNotSupportedException {
  114.       BaseDeclaration var1 = (BaseDeclaration)super.clone();
  115.       var1.errors = null;
  116.       var1.listenerList = new EventListenerList();
  117.       if (this.comments != null) {
  118.          var1.comments = (CommentList)this.comments.clone();
  119.       }
  120.  
  121.       var1.errors = new Vector();
  122.       var1.schema = null;
  123.       var1.declChangeEvent = new DeclarationChangeEvent(var1);
  124.       if (this.metaProps != null) {
  125.          var1.metaProps = (MetaPropHash)this.metaProps.clone();
  126.       }
  127.  
  128.       return var1;
  129.    }
  130.  
  131.    public String getName() {
  132.       return this.name;
  133.    }
  134.  
  135.    public void setName(String var1) {
  136.       if (!var1.equals(this.name)) {
  137.          String var2 = this.name;
  138.          this.name = var1;
  139.          this.fireChangeEvent(1, var2);
  140.       }
  141.    }
  142.  
  143.    public boolean isSubordinate(BaseDeclaration var1) {
  144.       return false;
  145.    }
  146.  
  147.    public boolean references(InternalPEDeclaration var1) {
  148.       return false;
  149.    }
  150.  
  151.    public void setIsInProlog(boolean var1) {
  152.       this.isInProlog = var1;
  153.    }
  154.  
  155.    public boolean isInProlog() {
  156.       return this.isInProlog;
  157.    }
  158.  
  159.    protected MetaPropHash getMetaPropHash() {
  160.       if (this.metaProps == null) {
  161.          this.metaProps = new MetaPropHash();
  162.       }
  163.  
  164.       return this.metaProps;
  165.    }
  166.  
  167.    public Enumeration getMetaProps() {
  168.       return this.metaProps == null ? null : this.getMetaPropHash().getMetaProps();
  169.    }
  170.  
  171.    public void setFireOnMetaPropChange(boolean var1) {
  172.       this.fireOnMetaPropChange = var1;
  173.    }
  174.  
  175.    public boolean getFireOnMetaPropChange() {
  176.       return this.fireOnMetaPropChange;
  177.    }
  178.  
  179.    public void putMetaProp(String var1, String var2) {
  180.       this.getMetaPropHash().putMetaProp(var1, var2);
  181.       if (this.fireOnMetaPropChange) {
  182.          this.fireChangeEvent();
  183.       }
  184.  
  185.    }
  186.  
  187.    public void appendMetaProp(String var1, String var2) {
  188.       this.getMetaPropHash().appendMetaProp(var1, var2);
  189.       if (this.fireOnMetaPropChange) {
  190.          this.fireChangeEvent();
  191.       }
  192.  
  193.    }
  194.  
  195.    public Object getMetaProp(String var1) {
  196.       return this.getMetaPropHash().getMetaProp(var1);
  197.    }
  198.  
  199.    public void removeMetaProp(String var1) {
  200.       this.getMetaPropHash().removeMetaProp(var1);
  201.       if (this.fireOnMetaPropChange) {
  202.          this.fireChangeEvent();
  203.       }
  204.  
  205.    }
  206.  
  207.    public String getMetaPropAsString(String var1) {
  208.       return this.getMetaPropHash().getMetaPropAsString(var1);
  209.    }
  210.  
  211.    public void putMetaPropList(String var1, String var2) {
  212.       this.getMetaPropHash().putMetaPropList(var1, var2);
  213.       if (this.fireOnMetaPropChange) {
  214.          this.fireChangeEvent();
  215.       }
  216.  
  217.    }
  218.  
  219.    public void putMetaPropAttrs(String var1, Hashtable var2) {
  220.       this.getMetaPropHash().putMetaPropAttrs(var1, var2);
  221.       if (this.fireOnMetaPropChange) {
  222.          this.fireChangeEvent();
  223.       }
  224.  
  225.    }
  226.  
  227.    public abstract String getSource();
  228.  
  229.    public void write(Writer var1) throws IOException {
  230.       var1.write(this.getCommentsAsSource());
  231.       var1.write(this.getSource());
  232.       var1.write(System.getProperty("line.separator"));
  233.    }
  234.  
  235.    public String toString() {
  236.       return this.getSource();
  237.    }
  238.  
  239.    public abstract String getClassName();
  240.  
  241.    protected void releaseBindings() {
  242.    }
  243.  
  244.    protected void establishBindings() {
  245.    }
  246.  
  247.    public SchemaIntf getSchema() {
  248.       return this.schema;
  249.    }
  250.  
  251.    public void setSchema(SchemaIntf var1) {
  252.       this.schema = var1;
  253.       if (var1 == null) {
  254.          this.releaseBindings();
  255.       } else {
  256.          this.establishBindings();
  257.       }
  258.  
  259.    }
  260.  
  261.    public CommentList getCommentList() {
  262.       return this.comments;
  263.    }
  264.  
  265.    public boolean hasComments() {
  266.       return this.comments != null && this.comments.size() > 0;
  267.    }
  268.  
  269.    public Enumeration getComments() {
  270.       return this.comments == null ? (new CommentList()).getComments() : this.comments.getComments();
  271.    }
  272.  
  273.    public String getCommentsAsString(String var1, String var2) {
  274.       return this.comments == null ? "" : this.comments.getCommentsAsString(var1, var2);
  275.    }
  276.  
  277.    public String getCommentsAsSource() {
  278.       return this.comments == null ? "" : this.comments.getCommentsAsSource();
  279.    }
  280.  
  281.    public void addComment(Comment var1) {
  282.       if (this.comments == null) {
  283.          this.comments = new CommentList();
  284.       }
  285.  
  286.       this.comments.addComment(var1);
  287.    }
  288.  
  289.    public void removeComment(Comment var1) {
  290.       this.comments.removeComment(var1);
  291.    }
  292.  
  293.    public void updateComments(Vector var1, String var2) {
  294.       if (this.comments == null) {
  295.          this.comments = new CommentList();
  296.       }
  297.  
  298.       this.comments.updateComments(var1, var2);
  299.       this.fireChangeEvent();
  300.    }
  301.  
  302.    public void setComments(Vector var1) {
  303.       if (this.comments == null) {
  304.          this.comments = new CommentList();
  305.       }
  306.  
  307.       this.comments.setComments(var1);
  308.    }
  309.  
  310.    public URI getURI() {
  311.       return this.uri;
  312.    }
  313.  
  314.    public void setURI(URI var1) {
  315.       this.uri = var1;
  316.    }
  317.  
  318.    public String getFirstError() {
  319.       return !this.hasErrors() ? null : ((ParserException)this.errors.firstElement()).getMessage();
  320.    }
  321.  
  322.    public boolean hasErrors() {
  323.       return this.errors != null && !this.errors.isEmpty();
  324.    }
  325.  
  326.    protected static void addPrerequisite(SchemaIntf var0, Vector var1, String var2, boolean var3) {
  327.       if (var2 != null) {
  328.          Vector var4 = DTDUtilities.extractNames(var2, (char)(var3 ? '%' : '&'));
  329.  
  330.          for(int var5 = 0; var5 < var4.size(); ++var5) {
  331.             EntityDeclaration var6 = (EntityDeclaration)var0.getNamedDeclaration((String)var4.elementAt(var5), var3 ? Class.forName("com.extensibility.xml.ParameterEntityDeclaration") : Class.forName("com.extensibility.xml.GeneralEntityDeclaration"));
  332.             if (var6 != null) {
  333.                var1.addElement(var6);
  334.             }
  335.          }
  336.  
  337.       }
  338.    }
  339.  
  340.    public Vector getPrerequisites(SchemaIntf var1) {
  341.       return new Vector();
  342.    }
  343.  
  344.    public void checkForErrors(SchemaIntf var1) {
  345.       if (!var1.getShowErrors()) {
  346.          this.errors.setSize(0);
  347.       }
  348.  
  349.       if (this.getName().length() > 0 && !this.getName().equals("]]>") && this.getName().charAt(0) != '#' && !DTDParser.isName(this.getName())) {
  350.          this.errors.addElement(new ParserException(224, this.getName()));
  351.       }
  352.  
  353.    }
  354.  
  355.    public Vector getErrors() {
  356.       return this.errors;
  357.    }
  358.  
  359.    public void addError(String var1) {
  360.       this.errors.addElement(new ParserException((Exception)null, var1));
  361.    }
  362.  
  363.    public void addError(ParserException var1) {
  364.       this.errors.addElement(var1);
  365.    }
  366.  
  367.    public void addDependantsToSet(XASet var1) {
  368.    }
  369.  
  370.    public String paramString() {
  371.       return String.valueOf(String.valueOf(String.valueOf(String.valueOf(this.getClass().getName()).concat(String.valueOf("("))).concat(String.valueOf(this.getName()))).concat(String.valueOf(") uri = "))).concat(String.valueOf(this.uri == null ? "null" : this.uri.toSource()));
  372.    }
  373. }
  374.